package com.singleResponsibility;

import java.util.Calendar;
import java.util.Date;

/**
 * 单一职责方案3：
 * 这种方式是根据不同运行方式进行方法调用得，并没有过多得创建类，只是增加了方法，改动较小
 * 这里虽然没有在类级别上遵守单一职责，但在方法级别上遵守了单一职责
 */
public class Signle3 {

    public static void main(String[] args) {
        Vehicle2 vehicle2=new Vehicle2();
        vehicle2.airRun("飞机");
        vehicle2.loadRun("汽车");
        vehicle2.waterRun("轮船");
    }
}


/**
 * 交通工具类：
 *
 */
class Vehicle2{

    //公路上跑的10点之后禁止通行
    //若在Signle1中都写在一个run方法中代码就会非常的臃肿，判断很多的if-else
    public void loadRun(String vehicle){
       Date date=new Date();
        if (date.getHours()>10){
            System.out.println("禁止通行");
        }else {
            System.out.println(vehicle+" 在公路上运行....");
        }

    }

    public void airRun(String vehicle){
        System.out.println(vehicle+" 在天空上运行....");
    }

    public void waterRun(String vehicle){
        System.out.println(vehicle+" 在水中运行....");
    }
}